package org.gdtc.storefront.mapper;

import org.apache.ibatis.annotations.Param;
import org.gdtc.storefront.entity.Classification;

import java.util.List;

public interface ClassificationMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Classification record);

    Classification selectByPrimaryKey(Integer id);

    List<Classification> selectAll();
    List<Classification> selectThree(@Param("storeid") Integer storeid, @Param("classone") Integer classone,@Param("classthree") Integer classthree);

    int updateByPrimaryKey(Classification record);

    //查询一级分类
    List<Classification> QueryClassone(@Param("storeid") Integer storeid);

    //根据三级分类查询id
    int selectIdByClassthreename(@Param("classthreename") String classthreename);

    //查询二级分类
    List<Classification> QueryClasstwo(@Param("storeid") Integer storeid,
                                       @Param("classone") Integer classone);

    //查询三级分类
    List<Classification> QueryClassthree(@Param("storeid") Integer storeid,
                                         @Param("classtwo") Integer classtwo);

    //查询最后一条记录的一级分类ID
    int QueryClassoneLimit();

    //查询最后一条记录的二级分类ID
    int QueryClasstwoLimit();

    //查询最后一条记录的三级分类ID
    int QueryClassthreeLimit();

    /**
     * 添加一级分类
     *
     * @param storeid      分店ID
     * @param classone     一级分类ID
     * @param classonename 一级分类内容
     * @return
     */
    int InsClassone(@Param("storeid") Integer storeid,
                    @Param("classone") Integer classone,
                    @Param("classonename") String classonename);

    /**
     * 添加二级分类
     *
     * @param storeid      分店ID
     * @param classone     一级分类ID
     * @param classtwo     二级分类ID
     * @param classtwoname 二级分类内容
     * @return
     */
    int InsClasstwo(@Param("storeid") Integer storeid,
                    @Param("classone") Integer classone,
                    @Param("classtwo") Integer classtwo,
                    @Param("classtwoname") String classtwoname);

    /**
     * 添加三级分类
     *
     * @param storeid        分店ID
     * @param classone       一级分类ID
     * @param classtwo       二级分类ID
     * @param classthree     三级分类ID
     * @param classthreename 三级分类内容
     * @return
     */
    int InsClassthree(@Param("storeid") Integer storeid,
                      @Param("classone") Integer classone,
                      @Param("classtwo") Integer classtwo,
                      @Param("classthree") Integer classthree,
                      @Param("classthreename") String classthreename);

    //删除一级分类
    int DelClassone(@Param("classone") Integer classone, @Param("storeid") Integer storeid);

    //删除二级分类
    int DelClasstwo(@Param("classtwo") Integer classtwo, @Param("storeid") Integer storeid);

    //删除三级分类
    int DelClassthree(@Param("classthree") Integer classthree, @Param("storeid") Integer storeid);

    //默认加载所有一级分类
    List<Classification> QueryClass();

    //默认加载所有二级分类
    List<Classification> QueryClasstwos();

    //默认加载所有三级分类
    List<Classification> QueryClassthrees();
}